package com.shujia.core

import org.apache.spark.{SparkConf, SparkContext}

object Code14GroupByKey extends App {
  val sc = new SparkContext(new SparkConf().setMaster("local").setAppName("Mysql2Text"))

  /**
   * GroupByKey:
   *    作用在KV形式的RDD上，对Key进行分组操作，相比较groupBy语法更加简洁，但是缺失自定义分组功能
   *    
   */

  // 需求：对班级性别，分组求人数

  sc
    .textFile("scala_code/data/students.txt")

    .map{
      case oneLine => {
        val splitRes: Array[String] = oneLine.split(",")
//        (splitRes(0),splitRes(1),splitRes(2),splitRes(3),splitRes(4))
        // (id,name,age,gender,clazz)
        ((splitRes(4),splitRes(3)), (splitRes(0),splitRes(1),splitRes(2)))
      }
    }
    .groupByKey()
    .mapValues(_.size)
    .foreach(println)



}
